<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div >
        <div id="app">
            {{msg}} 
            <div v-pre>
                {{msg}}
            </div>
        </div>
        <div id="app2">

        </div>
    </div>


    <!-- 开发环境版本，包含了有帮助的命令行警告 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> -->
    <!-- 进入是data 出来_data  $data ? -->
    <script>
        function vue(options) {
            this._data = options.data 
            this.$data = options.data 
            this.msg = options.data.msg  
            this.msg2 = options.data.msg2
            this.$el = document.querySelector(options.el)
            // 用正则匹配 {{}}
        }
        vue.prototype.$delete = function() {
            console.log('$delete')
        }
        vue.prototype.$forceUpdate = function() {
            console.log('$forceUpdate')
        }
        //  桥梁函数 四步 
        // 1  创建vm = {} 
        // 2 绑定原型 节约内存 vm.__proto__ =  vue.prototype 
        // 3 正常赋值 vm._data = options.data vm.$data = options.data ......
        // 4 创造好的对象返回给实例 

        var vm = new vue({
            // 监管的容器 
            el:'#app',
            // 数据定义
            data:{
                msg:'helloworld',
                msg2:'你好世界'
            }
        })

        console.log('vm',vm)
     
     

      

    </script>
</body>

</html>